Answered by two people and will be continued to be answered. Lock approaches to prevent spam on thread.