Temp commit, overwrite and finish refactor

Temp commit, overwrite and finish refactor