separated out the notion of data (defined in theory) from helper functions in a tools module