shell mostly working, need . implementation