device register implementation