dependency with design