more progress on CSP/rule-based method