Initial types

Won't get time to work on this for a while so I'll PR now.