using threading macro instead