chain controller def