slightly less fucked up... i really need to document this