line_count returns a struct
fixed do loop to correctly count length.
re-working main so it properly allocates memory
updated header