separated long functions into reusable shorter ones
separated most things into their own files, easier to manage code later on