basic devise implementation