Some code clean up and modularity