a more complex framework