Please refactor into multiple methods. +/- 50 lines is too much.