allow customisation of storage size and permanence from constructor