initial implementation complete