extended the operands to arrays and typedefs :D