add unless and change all variables type to polymorph