Rashad -> functional_specification, delete it leater