refactor to use Codahale