feat: finish logic