add better types