https://ubuntuask.com/blog/how-to-pass-the-interface-as-a-parameter-in-golang