moved both implementations into same project