Provide architecture to handle multiple environments