almost gave up on this a couple of times but im glad i decided...