Restructuring repo and adding documentation (unfinished)