Make Value more object oriented and cleaner