seperated into ttwo files for testing