rework - unittest pass