Merged the refactor branch into the main develop branch