added separate module for client functions