starting to decompose functions