Accept arguments to protocol constructor