dependency generation added but not perfect