class work but not complete might have some mistake inside>_<