Refactored a bit, introduced BoardContext to handle conditions with dependencies on other conditions