slowly getting some nice functionality setup