parse function updated