Moved some more drudgery to generic controller trait