added lazy
refactored bool, moved control flow out of it into controlflow.jl