updated rule based