idea of IValueReolvers added, all test passing