progress. finishing up functions