We should probably factor this out into a subclass function.