progress on type traits for #23
tidying up