added more accurate before action