Major changes to can.c