made the devices abstract interfaces
add an empty method
initialized some elements and changed how the threads work