make it easier to extend