Add test and implementation