broke problem into smaller chunks

defined the smaller problem areas