collect state vertex possibl subvertic object state collect state vertex result arrai list state vertex state composit state state vertex vertex composit state state subvertex result add vertex result add possibl subvertic vertex invalid object except invalid element except result 