Finished + Fixed bugs (but bugs probably still exist..)