This post is a continuation of part 1 and part 2. I suggest you read both parts first to understand what is happening here in part 3. Anyway,