move reservation back into its module