add reflect function