Finished product :(
Test cases updated fully.