added dark pulse method