First try at better types - doesn't compile.