my initial external merge. almost done.