working towards function and *-expr support