should this really part of the public interface?