implement the rest! except for scanExpression()