Additional refactoring and added serveral unit tests. (cherry picked from commit a806f1540e6fc995410671f34382d14389ace90a) Signed-off-by: John Blum <jblum@pivotal.io>
Additional refactoring and added serveral unit tests. (cherry picked from commit a806f1540e6fc995410671f34382d14389ace90a) Signed-off-by: John Blum <jblum@pivotal.io>