Minor: whitespace inside {. Also, should this memoize?