preemptive SJF implementation

resolves issue #42.
thanks to jeremy/ricky's magic functions.
everything is easy.
im kind of sad its so easy. hahaha