arrow and semicolon syntax (barely tested)