Some refactoring; Further extended the assertion impl