Added virtual declarations to allow for custom storage methods