Added functional design