Rethinking the programmable remote control