make it actually work with hardware