added patch conceptual idea from ml