finish implementation and first test