added skeleton agent base class