Please try to refactor this method to simplify - break it up in to methods no longer than 5-6 lines.  Let me know if you need an example.