eh fuck this shit!
new version. it's a class now