add factory parser