Basic refactor
Basic refactor 2