added support for short circuiting and and or operators