Split tests up into multiple tests. Added proper documentation.