abstract store with audit method