simplify reading
preserve newlines
requests have their socket
pass connection to request