device controller methods implemented