brake things out to methods so I can understand responsiblities better