implement waits, extra sanity-checks