added a lot of function skeletons