added initial prototype implementation