Deep refactoring + add 1-1 sample