added stuff and tests for this stuff