Done. ready for optimization.