updated somewhat