script4 (need testing 1,2,3,4)