refactor to use underscore