refactoring steps for clarity. https://littlejoysoftware.fogbugz.com/default.asp?141