And more refactor