Added Button Abstraction

Added button abstraction but also refined both nav objects