useful mocro and utils