even more crazy big changes
	most changes are due to me understanding how the protocol
	works exactly and finding the best way to parse it while
	keeping performance in mind