Fix faint
Refactor some more
Merge branch 'refactoring' into develop