add a lot of tests and possibility of checks or not