added validation methords to post, refactored post views to use a form partial