Most test cases are finished and basic framework is done. Might not continue to develop this after this commit.