protocol method calls are implemented