Added argparsing and better module support