Add in checks to see if it already got a name, add some new generic functions to speed it up.