updated working model