allow custom id separator
fix attribute error
catch KeyError