allow of global and instance implementations