added elements, methods and tests