draft implimentation. added TODO's