added new implementation