optional: make value protected -> private
remove use of contructor inheritance (broken with msvc)