adding some more great functions