slightly cleaning up API and fixing up comments a ton