working on eval
added grouped polymorphic dispatch