broke out model and router into separate files