initial check in

first working iteration - lots to do