Added back source files (from accidentally removing them instead of refactoring)