Describe the goal of this PR. Mention any related Issue numbers.
- I've read and understood the Contributing Guidelines and have done my best effort to follow them.
- I've read and agree to the Code of Conduct.
The following point can be removed after setting up CI (such as Travis) with coverage reports (such as Codecov)
- I've written tests to cover the new code and functionality included in this PR.
The following point can be removed after setting up a CLA reporting tool such as cla-assistant.io
- I've read, agree to, and signed the Contributor License Agreement (CLA).