Preprocessing algorithms - a review