Lots of functions to allow for easy usage :)