updated with full classes