basic structure from IJ