wrote storage abstraction