new post use sparsearray instead for better performance