implement zloop compatible api