attempt at wf val and heap