Significant refactoring and cleanup…I think it's ready!