adding a half implementation