remove 'when' and add to-array! macro
refactor grimoire to be some more promise-oriented