big thanks to Lenis for providing a base that i used for this class :)