Initial work on shell command framework