added missing unit tests, still missing implementation of three