updated typedefs for clarity