implement and test head method