planning out minimal behavior/functions needed