parse source to struct data