implementing task executor