part of the implementation done