some meta functions