Creation of desirable complexity: strategies for designing selforganized systems