tested with TypeScript 0.9.5