allow fields to be defined as the executor class, not just the interface