pretty much done, not perfect tho, but hey, nobody's perfect