getting rid of descriptors in public interface