added most functions