proper dependency handling