Step 2 of the refactor.
Signed-off-by: Chris Sanders <zidane@outlook.com>
Step 3 of the refactor.
Signed-off-by: Chris Sanders <zidane@outlook.com>