added semilcolon to hide internals of function