added ternary operator support