Added "once" method and extended tests