implemented all commands