Implementation & Working version of TypeChecking