finished coding
need to test