refactored and broken
refactored and broken
got the refactor mostly working
it's alive