A new normal refinement routine (#996)

I've added possibility of using clever weighting in future revisions, as noted by aichim.