separated common interfaces will be used both in client and server