add specs and delegate implements.