apply macro is broken, all else works, approaching turing completeness