unnecessary logic