Warning: quick-and-dirty merge. Don't develop!