Added Validator and Generator. Also some function argument logic