#5 new prototype and seems to work