changing type declarations
changing type declarations
changing type declarations
adding new types
shuffling things around
adding mem functions