changes based on nviennot's feedback