more expressions - some code generation left as TODO