initial end-to-end implementation with many limitations and assumptions