Rewrote alot of it.