Refactor and combinate