sample and lib decouple, alpha version ready