As discussed before, this should not be handled in a single controller