Finished. Looks like crap, some bugs, but all logic is done