added a disgustingly inefficient method, i might puke