lots of new fucntions