add a few more functions