added Ruleable behaviour