done finnal version