implemented orthogonalisation