basic light logic