Good progress, will style a bit more later and would like to use switch/case instead of if statements