still needs some help with URLs and Views, but the basics should be there