Merge Refactor into master