working Oo
need to clean up