Yay abstract classes!  :( :(