Assuring good functional design