this should be a hash from the start