Merge branch 'refactor' into merge