add more checks (views and screens) some refactoring and documentation