add rudimentary functions