updated behavioural functions