add base classes for task and command