add returns and error if key already exists