Pretty much done

Some minor optimizations to make still, but it works and is 100%
playable! :)