Total device overhaul

I'm going to continue fixing this up and getting it right for
4.3 and 4.4 going forward