still working out code formatting