This question gets asked a lot, here is a link I found useful

Michael Petrov on stock cleaning