implemented some future extensions, refactored tests with them