changed public interface