moved to a more complex object model