Extend documentation
Added more comments and assertions to all classes; clean up