added effect handling