refactor has_one assocation and specs