allow custom storage methods, provide default in-memory method
move to v0.0.6