working demo complete needs polish