working vers, not complete