added more or less functional shell