Reorganized file structure and added docs