i push mah shit just before i reimplement it because design suck.