use the logic