Basic directory support and refactored Task to FileTask to make way for a directory task.