this time step 1 refactoring is really complete. some setter were not implemented in the last commit.