added implementation stuff