Added interface and classes