Aru - Major refactoring to break down the different checking logic
Aru - Major refactoring to simplify the codebase.