new post: crtp vs virtual function