Finished. Must test a bit more and fix display as it seems to be buggy