First working prototype

All intended function basically completed, will require further testing
and bug fix