to make code more portable, we should use library define types. This is annoying, someone will have to refactor every single file we have.