must this use a switch statement? if/else is so much cleaner.