making more functional