roll implementation for client and standalone