This is a complicated process.