big reorganization of different methods