add more principles, syntax