restructing dependencies