don't use function keyword for increased portability