simplified
all test passing