remove unused code, and reengineering it
remove unused code, and reengineering it