reorganize everything, using components, new grunt build system.