TODO: clean up extensions. some could be organized for autoloading, and others could be removed entirely.