Final commit. Please don't judge my code on this project