Work on decoupling Check
Update tests
Add AbstractCheckStrategy