Adding all code I've written so far