dependency explanation