Added argument processing and usage