move integration tests to public interface level