added all source files and cleaned them up to work under this structure