fixing positional parameter requirements, putting optionals last