arm constructor now has readable arguments, and takes in vectors instead of a fixed number of lengths