doing dependencies properly