There are a lot of lines one right after another here; it might be nice to break them up with occassional empty newlines for readability.