cache these instances and make them replaceable I would suggest