basic button framework in place, lots of hardcoding and messiness to be
cleaned up