now accepts block expressions, if and else