Draft, typescript, corrected