still working on implementing functions