re-structure a little