Switching to typescript