sanity check
deal correctly with reuse