Separated to parse and handle logic into different locations