We need to track different things in the server and client, so separate things to two independent structures to keep things more clear.