after removing NullElem class and some related codes, NOTE: This is a BROKEN versiongit statusgit statusgit status if you want to roll back to the version with NullElem, please come to the previous version.