this should handle every parsing situation i want to handle now, needs testing