Added JSTypes and made abstract