prototype implementation

most of the features are inclued