optional: correctly implement assignment