encodableKeys is now cashed as an assosiated object on the class