contract types