how do these dependencies work?