add some type traits