Separated input from logic