more code clean