not very clean things ... but works