move some local vars to make them more clear
extract some methods
more extract methods
simple extraction