complete all, but need to optimize later