[NEED MORE UNIT TEST] pass test