not sure about this, it looks very hacky