Not 100% sure, but these feel like they maybe should live on CoordinateBox (or a subclass of CoordinateBox) which Component inherits.