begin list of TODO functionality