Working fully client-side basic implementation