sdfile re-implement into adchem with iterator