Fixing infinite constructor recursion bug + cleaning up documentation