used typedef to remove all of the 'struct's