implemented some methods, but no tested yet