less logic on the client