My own shell implementation