use hash-based objects consistently