Refactor Branch will be cleaned up eventually merged into master