Added the interface and stuff