why we need to do checking here? It's in constructor.