stage 1 90%
basically working stage 1 refinements to be added