fix #1. add design principles.