public interface structure draft