Should we even keep the original by_hash( function? I knew it was something like this, but couldn't quite remember to use _with_callback().