Starting on separating data and functions as much as possible