Reorganized into multi-file project