add behavior type checking