added the defdemo macro