should reserve instead of constructor