layout-complete, needs polishing