Knockout frontend

Credits to @Tgy31, I just did the rebase.