New implementation as per the design discussed