not the best approach I guess