using oo make code clean