added typedefs