fix bug: incompatible doWork()