Mostly finished shell functionality