refactored job system