working out how to implement this