holy hack that global namespace is polluted, but it works