second go at fully implementing style