Added lazy mixing. With new tests and passing old tests