changes and separated files
complete reorganization