now passes tests