some rewrites
Submodules removed
rearrange directory structure
submodules readded
changed module register() to load()