setting up builders to work with a Context object so that they are stateless and thread-safe