improved config - hashes only occur when necessary