Seperated Classes into Public Interface && Private Interface
Removed some tests (only test public interface for now)