changed func composition