using protocol to choose ECManager