implemented initial public interface