Merging Refactor into master