Consolidate all buttons under one component

This closes issue #12.