Add builder pattern for creating dependencies

This is good. Make sure to add this to docs.