Split tests and implementation