* Major reworking of entire codebase

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