obj work, make code clean