Added some type traits for template specialisation