added test cases
fixed some stuff
fixed some stuff