frontend sucks
We're gonna do this right, browser compat be damned