please move the public interface to the top of the class declaration