See comments in last section