https://blog.fitradar.me/abstraction-layer-can-always-help/
Abstraction layer can always help