Clean up source code and better readme