optional semicolons removed