added sort factory and interface
completed sort factory; added sort abstract and sort implementations; added sort interface; switched to factory use