Move validation into normalise()