ugh indentation. also why are these methods that are concretely implemented virtual? are you going to override them?