Added piping and stuff, rewrote command handling