Modified the layout and CSS to make it more userfriendly, added argument validation and default values