pattern design principals