Wrote more on implementation