reworked reserve() to correctly grow when we request a single element