add validation to tier selection, refactor code around tier specification, update documentation