almost all controller methods, still need to test assignment