behavioural type tests all passing