Generalized with orthogonalization