Fixed a bug (not skipping mismatched inputs) and moved selectioninput and safeselectioninput into their own classes