* Major reworking of source

Signed-off-by: John Sedlak <john.sedlak@outlook.com>
Signed-off-by: John Sedlak <john.sedlak@outlook.com>