more structure, still no core logic