Added classes and interface