logic implementation under progress