loop, variable functions, type check functions