oo implemented
fix error
clean