deal with empty optional rule; split print of different categories