working with the implementation