made separation rules async