allowed to pass nullptr to build method