clean up and breaking things out further