increase speed by changing data buffer to list