intial prototype implementation