init
impl use case 1