add reserve func