added custom device add functionality