WIP. Initial client side only implementation.