done with first very preliminary pass