add interactive algorithm