implemented negative logic