first pass at DOM