consider this the preferred way to handle depencdency so client library do not need to require many libraries