I almost feel bad for raping gui this hard...