remove dependency on <type_traits>
remove use of boost ref