better dependency generation