fixed lazy evalution