RC interface updates

better code, easier to extend and hopefully read