start refactoring, include async
Merge branch 'master' into refactor
refactored correction routines, use async
finished cushions refactor, some performance optimization