---public interface