Refactoring: value from Object -> V. More generics improvemnts