improved assignment