I now have three different methods to do this, there must be a way to glue them all to a single function.