needs a good working out in Models