program and memory backend restructure
docs