messing around with a slightly different interface.