first working version, 4 testcases