lots of work to the SJF and data class.