device controller implementation