closes #30. closes #29. adds 'panel'