Reorganize the code structure of Tower