implemted assign op