implementation and tests
Added metadata