some major updates
update for public interface