Improve logic, many changes.