draft from David merged, polishing needed