i thought about making a subclass for this and then heard @kennknowles whispering that it was a bad idea...