implement assignment