Reorganized source files to make more sense