updated parse function