fix: handles nil in checkbool
better event system