todo: eval-like ability