first complete version ...

have to cleanup code