added class definitions