fix #29. semicolon is now optional.