a couple more functions implemented