more impl and demo start