stole some stuff from nossidge