added some layout and DRYing, added validation
added pagination and css