change public interface to use Frame structure