Rewrite a lot, break everythign