change file arrangement

also added additional enums and class templates
Merge branch 'indev'