changed then implementation