Started defining all the necessary types.