Adding questions, summary, proposed solution, re-factoring problem