ok - now on to refactoring the thing