28th test passing
29th test passing
30th test passing
Updated to split into spec and lib files