work in progress, but no other option but to commit this