args parsing and more type system modifications