opp concept implement