implementation modifications