refactored views
added support for border and opacity to button
minor refactor