Adding source files and tests