slim this down, use device dependencies instead of a big mess here