add specs and code