[Complete] Implemented for background thread