change optimization back to :whitspace
add array position handling