makes dependencies more flexible