added has_one and has_one_through
added tests to philosopher model