public interface