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