flesh out functional reqs