begins a refactor that will reintroduced code as its fixed. fixes #24, fixes #27, working on #28, fixes #34, fixes #35, fixes #36, fixes #37, fixes #39