added a lÃot of new functions