implemented concurrent manner