There are already extensive topics on this issue:
Please be so kind to search the already available resources before opening a new topic.