Refactor
Final Commit
added doc