Added JSType and made abstract