An adaptive architecture for generating and maintaining simulation models