should probably end that last function i gess