first attempt at adding user functions