re-factored modifying assignemnts, and fully integrated with a++/++a (array case to do)