Added superc and reorged code