working on some more complex behaviours