Add generation methods and remove the optional arguments from the backend