First commit

50% done.
Have to fix many bugs etc.