bit easier than i thought, but not finished yet