using has fn