extra tests, better functionality