Buttons and features

Merging code with extra features added.