finish basic version