better attempt at gui