added alot of utilties