Updated for TypeScript 1.3. Use of protected keyword for assertion methods.