lots of refactoring + wind bearing back in