Are you sure that this type should private? You use it in the public interface :)