performance issue done. TODO: finish DEMO