implemented most commands