fixed short circut, working. passed regressions