added __pulsar() and fixed some bugs
added tools.calculateDispersion(), unfinished