didn't understand the other implementation of value