initial working implementation complete