added validations and some scopes to visit model