some dirty code just to implement things while they not faded away from my head