phase 2 of the animation refactoring. wrote a method calc_next_states which is a merge of the two animation methods
(not tested zet)