decision function added