Implement SDF validation

Refactored the validation code to make it more extensible and easier to manage. Added the additional SDF rules to close #4