parsing code gettign complex enough it needs own files