Changed the layout and added user validation and tests