added compiler based on eval