flexible system design