handle defaults correctly