precalculate filters with copy-on-write per action stack