implemented abstract io with 1 file for all sections