Add upload support and split controllers in different classes