reorganize so data IO moved to General module