sometimes perfectly works, most of the time not