an outline of dependent types added