v4-final

done. comments are included