normalisation implemented cleaner