add some more functions