refactoring........@!#@!#