Add Canvans support, refactor Arrow model