object based implementations, and optional express methods