added Block diagram