Co-authored-by: Aratako <127325395+Aratako@users.noreply.github.com>
moves memory to own module, factors out common stuff