start adding support for abstracted memory
just an incremental commit