included all functions in the prototype