Working implementation done