Alpha

A lot of things are done, and I am merging this, but this is still alpha and it still doesn't work.