implemented need class framwork