Got rid of traits to simplify vector adapter
better sfinae
better sfinae... but kills VS