adding source files and updating documentation