if somebody finds something more efficient let me know