refactor: added public interface