logic implementation in client app