get rid of has_key