added logging setup, argument processor, etc