added visual styles and more validations and tests