dont read this post - it's too long