added debug system to all implementations