add public interface and serializable classes