use timeout()  to privent 'apply() already in progress' error