Still work in progress but defined more of the user experience in how to use this and getting the options for specifying this in for the users before continuing to the meat of the functions.