adding first pass version
continued work