implemented CanPump and SocketCanPump -- needs lots of testing