Crtp

New CRTP branch into master!