cancan working, may need some tidying