Using inheritance where I can, and dropping the amount of repetetive
code