multistate support, with test function
multistate test