pass the name separately to register and construct methods