Use memoziable gem to prevent unnecessary recompution