changes recv_frame() to just recv(), and changes some stuff around to make it easier to override certain things