this on actually is at least a draft, it works... somehow :D