New file structure; Adds new factories; Adds better validations and custom exceptions; Enhaced Tests;