removed need of std type traits