improve assigns operators