Next iteration: Extensibility, polymorphism
little clean up