improvements on assignment