functional c frame work creating